// pages/goods_list/index.js
import { request } from "../../request/request.js";
import regeneratorRuntime from "../../lib/runtime/runtime";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tabs: [{
      id: 0,
      name: "综合",
      isActive: true
      },{
      id: 1,
      name: "销量",
      isActive: false
      },{
      id: 2,
      name: "价格",
      isActive: false
      }
    ],
    // 获取的商品数据
    goodsList: []
  },

  // 商品查询的参数配置
  queryParams: {
    query: '',
    cid: '',
    pagenum: 1,
    pagesize: 10
  },

  // 商品总页数
  totalPage: 1,

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.queryParams.cid = options.cid  || "";
    this.queryParams.query = options.query  || "";
    this.getGoods();
  },


  /** 
   * 处理点击标题栏时，根据不同标题的索引加载不同的主体内容
   */
  handleItemTap(e) {
    const {index} = e.detail;
    let tabs = this.data.tabs;
    tabs.forEach(v => {
      v.id === index ? v.isActive = true : v.isActive = false;
    })
    this.setData({
      tabs: tabs
    })
  },

  /** 
   * 发送网络请求，获取商品数据
   */
  async getGoods() {
    let res = await request({url: "/goods/search",data: this.queryParams});
    // 商品数据的总条数
    const totalNum = res.data.message.total;
    // 商品总页数
    this.totalPage = Math.ceil(totalNum / this.queryParams.pagesize);
    this.setData({
      goodsList: [...this.data.goodsList,...res.data.message.goods]
    })
    // 关闭下拉刷新的加载动画
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    // 判断当前页数和总页数的关系，视情况加载数据
    if (this.queryParams.pagenum >= this.totalPage) 
    {
      wx:wx.showToast({title: "没有下一页！",});
    }
    else 
    {
      this.queryParams.pagenum++;
      this.getGoods();
    }
  },

    /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    // 清空商品数据
    this.setData({goodsList: []});
    // 设置网络请求参数的页面码为 1
    this.queryParams.pagenum = 1;
    // 重新发送网络请求，获取商品数据
    this.getGoods();
  }

})